#ifndef __CRC16_H__
#define __CRC16_H__

#ifdef __cplusplus
extern "C"
{
#endif

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdint.h>

#define CRC16_CCITT_SEED 0xFFFF   // 该位称为预置值，使用人工算法（长除法）时 需要将除数多项式先与该与职位 异或 ，才能得到最后的除数多项式
#define CRC16_CCITT_POLY16 0x1021 // 该位为简式书写 实际为0x11021

    uint16_t crc16_ccitt(uint16_t crc, uint8_t *pbuf, uint16_t len); //*pbuf为数据指针，len为数据长度
    unsigned short crc16_ccitt_s(unsigned char *pbuf, size_t len);

#ifdef __cplusplus
}
#endif

#endif
